﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wiser
{
    /// <summary>
    /// 倒排列表（以文档编号和位置信息为元素的链表结构）
    /// </summary>
    public record postings_list
    {
        /// <summary>
        /// 文档编号
        /// </summary>
        public int document_id;
        /// <summary>
        /// 位置信息的数组
        /// </summary>
        public List<object> positions;
        /// <summary>
        /// 位置信息的条数
        /// </summary>
        public int positions_count;
        /// <summary>
        /// 指向下一个倒排列表的指针
        /// </summary>
        public postings_list next;
    }
    /// <summary>
    /// 倒排索引（以词元编号为键，以倒排列表为值的关联数组）
    /// </summary>
    public class inverted_index_hash
    {
        public int token_id;
        public postings_list postings_list;
        public int docs_count;
        public int positions_count;

    }
    /// <summary>
    /// 压缩倒排列表等数据的方法
    /// </summary>
    public enum compress_method
    {
        /// <summary>
        /// 不压缩
        /// </summary>
        compress_none,
        /// <summary>
        /// 使用Golomb编码压缩
        /// </summary>
        compress_golomb
    }
}
